package com.wish.wishhouse_resource.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 *
 * </p>
 *
 * @author zhangshuxin
 * @since 2021-03-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_cf_termination")
public class TCfTermination implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 商户ID
     */
    @TableField("business_id")
    private Long businessId;

    /**
     * 部门ID
     */
    @TableField("dept_id")
    private Long deptId;

    /**
     * 部门编号
     */
    @TableField("dept_no")
    private String deptNo;

    /**
     * 解约协议编号
     */
    @TableField("cf_termination_no")
    private String cfTerminationNo;

    /**
     * 外部协议编号（线下解约协议号）
     */
    @TableField("out_termination_no")
    private String outTerminationNo;

    /**
     * 出房合同ID
     */
    @TableField("cf_contract_id")
    private Long cfContractId;

    /**
     * 出房合同编号
     */
    @TableField("cf_contract_no")
    private String cfContractNo;

    /**
     * 楼盘ID
     */
    @TableField("premise_id")
    private Long premiseId;

    /**
     * 小区(使用楼盘名)
     */
    @TableField("premise_name")
    private String premiseName;

    /**
     * 房产编号
     */
    @TableField("house_id")
    private String houseId;

    /**
     * 房产信息
     */
    @TableField("house_name")
    private String houseName;

    /**
     * 房源ID
     */
    @TableField("room_id")
    private String roomId;

    /**
     * 房源编号
     */
    @TableField("room_code")
    private String roomCode;

    /**
     * 房源名称
     */
    @TableField("room_name")
    private String roomName;

    /**
     * 租客ID
     */
    @TableField("tenant_id")
    private Long tenantId;

    /**
     * 租客姓名
     */
    @TableField("tenant_name")
    private String tenantName;

    /**
     * 租客联系方式
     */
    @TableField("tenant_phone")
    private String tenantPhone;

    /**
     * 解约类型（1:合同到期 2：租客提前解约 3：我方退租解约，4：其他）
     */
    @TableField("termination_type")
    private String terminationType;

    /**
     * 解约类型其他（解约类型为其它的时候）
     */
    @TableField("termination_other_type")
    private String terminationOtherType;

    /**
     * 物业交割日期
     */
    @TableField("wyjg_date")
    private Date wyjgDate;

    /**
     * 解约日期（协议签订日期，暂时同录入日期一样）
     */
    @TableField("termination_date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date terminationDate;

    /**
     * 合同实际截止日（预留字段，暂时用解约日期）
     */
    @TableField("real_termination_date")
    private Date realTerminationDate;

    /**
     * 审核日期（目前无审核，暂时用录入日期）
     */
    @TableField("audit_date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date auditDate;

    /**
     * 结算合计(应退)， 为负数的时候是应收
     */
    @TableField("final_statement")
    private BigDecimal finalStatement;

    /**
     * 录入人ID
     */
    @TableField("input_user_id")
    private Long inputUserId;

    /**
     * 录入人姓名
     */
    @TableField("input_user_name")
    private String inputUserName;

    /**
     * 录入日期
     */
    @TableField("input_date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date inputDate;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;


    /**
     * 删除标识：0:未删除，1：删除
     */
    @TableField("del_flg")
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    @TableField("create_userid")
    private Long createUserid;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新用户ID
     */
    @TableField("update_userid")
    private Long updateUserid;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;


    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date inputDate1;

    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date inputDate2;
}
